JDBCとの互換性
次に、JDBCに適用される透過性の制限の概要を示します。
- Oracleでは、TimesTenより新しいJDKがサポートされている場合があります。JDKのサポートは、Timestenでサポートされている最新のJDKリリースに制限されます。最新のプラットフォームのサポートについては、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。
- Oracleでは、より新しいリリースのJDBC APIがサポートされている場合があります。JDBCのサポートは、Timestenでサポートされている最新のJDBCリリースに制限されます。より高いレベルのJDBC APIを使用しているアプリケーションでは、実行時に例外が発生します。最新のプラットフォームのサポートについては、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。
- JDBCデータベースのメタ・データ関数は、常にTimesTenメタ・データを返します。
- すべてのOracle ResultSetメタ・データ(長さ、データ型およびラベル)が返されますが、TimesTenではデータ型および長さが返されます。ラベルは元のラベルではなくなります。
- OracleのUnicode/多国語化はサポートされていません。
- Oracle拡張子(oracle.sqlおよびoracle.jdbcパッケージ)はサポートされていません。
- Javaストアド・プロシージャは、TimesTenではサポートされていません。
Connection
透過性の問題がないConnectionメソッドは、次のとおりです。
- close
- commit
- createStatement
- setAutoCommit
- prepareCall
- prepareStatement
- rollback
TimesTenでローカルに実行されるメソッドは、次のとおりです。
Statement
透過性の問題がないStatementメソッドは、次のとおりです。
- close
- execute
- executeUpdate
- executeQuery
- getResultSet
- getUpdateCount
- getWarnings
- executeBatch
- clearBatch
- addBatch
TimesTenでローカルに実行されるメソッドは、次のとおりです。
- get/setMaxFieldSize
- get/setMaxRows
- get/setQueryTimeout
- getMoreResults
- setEscapeProcessing
- setCursorName
ResultSet
透過性の問題がないResultSetメソッドは、次のとおりです。
PreparedStatement
透過性の問題がないPreparedStatementメソッドは、次のとおりです。
- execute
- executeUpdate
- executeQuery
- setXXX
- setXXXStream
- close
- getResultSet
- getUpdateCount
- addBatch
TimesTenでローカルに実行されるメソッドは、次のとおりです。
- get/setMaxFieldSize
- get/setMaxRows
- get/setQueryTimeout
- getMoreResults
- setEscapeProccessing
- setCursorName
CallableStatement
StatementおよびPreparedStatementインタフェースに対する制限と同じ制限がCallableStatementに適用されます。また、出力形式を持つCallableStatementsはサポートされていません。すべてのパラメータは、入力パラメータとして処理されます。出力パラメータが指定されたCallableStatementsを使用すると、準備時にエラーが返されるか、registerOutparameterを介してエラーが返されるか、またはアプリケーションで予期しない結果が発生する場合があります。
- WRITETHROUGHキャッシュ・グループでは、PassThrough=1を設定した場合、ストアド・プロシージャに隠されている間接的なDML処理またはトリガーによって起動された間接的なDML処理は、Cache Connect to Oracleに検出されずに渡される可能性があります。
- READONLYキャッシュ・グループ表に対して、更新、挿入または削除を行うストアド・プロシージャは、別のトランザクション内で非同期方式で自動リフレッシュされます。このため、これらの変更は、ストアド・プロシージャが実行されたトランザクション内では示されず、ある程度の時間が経過した後でキャッシュ表に自動リフレッシュされます。
ResultSetMetadata
透過性の問題がないResultSetMetadataメソッドは、次のとおりです。
- getColumnCount
- getColumnType
- getColumnLength
- getColumnLabel
- getColumnName
- getTableName
- isNullable
TimesTenでローカルに実行されるメソッドは、次のとおりです。
- getSchemaName
- getCatalogName
- getColumnDisplaySize
- getColumnType
- getColumnTypeName
- getPrecision
- getScale
- isAutoIncrement
- isCaseSensitive
- isCurrency
- isDefinitelyWritable
- isReadOnly
- isSearchable
- isSigned
- isWritable
ストリーム・サポート
ストリームに関連する透過性の問題は、次のとおりです。
- JDBCドライバは、executeQueryまたはnextメソッドのコール中に、データをインメモリ・バッファに完全にフェッチします。getXXXStreamエントリ・ポイントは、このバッファからデータを読み取るストリームを返します。
- Oracleでは、最大2GBのLONGまたはLONG RAWデータがサポートされています。
- アプリケーションでgetXXXStreamをコールしない場合でも、Oracleは常にLONG/LONG RAWをストリームします。
- TimesTenにcloseメソッドはありません。次の行に移動すると、ストリームが無効になります。Oracleでは、次の列に移動すると、ストリームがクローズします。
- TimesTenでは、mark、markSupportedおよびresetメソッドはサポートされていません。
TimesTenでは、文の非同期の実行、および別のスレッドからの実行中の文の取消しはサポートされていません。